#include<bits/stdc++.h>

using namespace std;
const int N=50;
vector<int>a[N];
int ans;
bool vis[N];
vector<int>l,s;
void dfs(int x,int step){
	 if(x==1&&step){
	 	if(step==21){
		 	for(auto j:l)cout<<j<<" ";
		 	puts("");
		 }
	 	return;
	 }
	 for(auto j:a[x]){
	 	if(!vis[j]){
		 	vis[j]=true;
		 	l.push_back(j);
		//cout<<j<<endl;
		 	dfs(j,step+1);
		 	l.pop_back();
		   vis[j]=false;
		 }
	 }
}
int main(){
	for(int i=1;i<=21;i++){
		for(int j=1;j<=21;j++){
			if(__gcd(i,j)==1){
			//	cout<<i<<" "<<j<<endl;
			if(i!=j)
				a[i].push_back(j);
			   // a[j].push_back(i);
			}
		}
	}
	dfs(1,0);
	cout<<ans<<endl;
}
